package io流;

import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.IOException;

public class imageFile {
    /**
     * IO流--针对   图片
     * 项目结构：Maven互联网型项目
     *         功能：下载第三方jar包【高手写好的类，压缩jar文件---引入---使用类】
     *         第三方jar包官方下载地址：  百度：mvn仓库
     *Apache   Commons  Imaging 包  ：针对IO流  图片传输流--封装    搜索：commons  imaging
     *                      处理各种图像格式外置包
     *                      读入写出---JPEG  PNG   GIF   TIFF
     *研究  第三方  xxx.jar  百度搜：Apache  Commons  Imaging 使用
     * 类中存在大量静态块，通过类名直接使用
     *
     * 使用jar包【包--压缩文件叫法
     *           库--使用类叫法】
     */


    /**
     * Imaging提供一套库写图片流方法
     * 读：getBufferedImage() 可以通过File文件路径找到一个图片
     *                                      并且打印图片信息【宽高】
     */
    @Test
    public   void testIG() throws IOException, ImageReadException {
     //1.创建File文件类---找到图片：路径地址+图片全称
        File file=new File("2.png");
        //2.Imaging图片类：静态方法getBufferedImage()  获取图片信息
       BufferedImage bi=Imaging.getBufferedImage(file);
       //3.获取图片信息
        int  height=bi.getHeight();
        int  width= bi.getWidth();
        System.out.println(height+width);

    }
    /**
     * writeImage(读入图片，写出图片位置，图片格式，null)
     * 写出一个图片，先读入一张图片，然后在写出
     */
    @Test
    public  void  testWI() throws IOException, ImageReadException, ImageWriteException {
    //1.读入一张图片
        File  c=new File("2.png");
       BufferedImage c1=Imaging.getBufferedImage(c);
       //2.写出图片路径+全称
        File  c2=new File("3.png");
        //3.Imaging类---调用静态法
        //ImageFormats 类
        //Version1 ImageFormat.format（“png”）;指定图片格式
        //version2 ImageFormats.PNG
        Imaging.writeImage(c1,c2, ImageFormats.PNG,null);
        System.out.println("写出成功");
    }






































}
